﻿#ifndef _DIRECTXZHONGWEN_H_ABCDE_
#define _DIRECTXZHONGWEN_H_ABCDE_

#include "default.h"
#include "D3D9TypesZhongWen.h"
#include "D3D9CapsZhongWen.h"
#include "D3D9ZhongWen.h"

/*
	在使用本项目时，建议进行简单的定义，如：
	typedef _显卡设备基类<IDirect3DDevice9, 显卡管理器> 显卡设备。
	当您使用显卡设备Ex开发时,无需进行这样的定义，
	因为显卡设备Ex被限定为 _显卡设备基类<IDirect3DDevice9Ex, 显卡管理器Ex>。
	当您完成定义，可以在代码中使用更简洁的代码，如：显卡设备、交换链、体积纹理。
	若您不进行此类定义，在编写代码中，每次都要显式的声明类型。
	这很麻烦，而且会使代码可读性下降。
*/

//	我们为您提供了以下预设定义，您可以快捷使用。
#define 使用DX预设
//#define 使用DXEx预设

#ifdef 使用DX预设
	typedef _显卡管理器基类<IDirect3D9> 显卡管理器;
	typedef _显卡设备基类<IDirect3DDevice9, _显卡管理器基类<IDirect3D9>> 显卡设备;
	typedef _状态块<显卡设备> 状态块;
	typedef _交换链基类<IDirect3DSwapChain9, 显卡设备> 交换链;
	typedef _顶点格式声明<显卡设备> 顶点格式声明;
	typedef _顶点着色器<显卡设备> 顶点着色器;
	typedef _像素着色器<显卡设备> 像素着色器;
	typedef _平面纹理<显卡设备> 平面纹理;
	typedef _体积纹理<显卡设备> 体积纹理;
	typedef _立方体贴图<显卡设备> 立方体贴图;
	typedef _顶点缓冲区<显卡设备> 顶点缓冲区;
	typedef _索引缓冲区<显卡设备> 索引缓冲区;
	typedef _状态查询器<显卡设备> 状态查询器;
#endif

#ifdef 使用DXEx预设
#ifndef 使用DX预设
	typedef _状态块<显卡设备Ex> 状态块;
	typedef _交换链基类<IDirect3DSwapChain9, 显卡设备Ex> 交换链;
	typedef _顶点格式声明<显卡设备Ex> 顶点格式声明;
	typedef _顶点着色器<显卡设备Ex> 顶点着色器;
	typedef _像素着色器<显卡设备Ex> 像素着色器;
	typedef _平面纹理<显卡设备Ex> 平面纹理;
	typedef _体积纹理<显卡设备Ex> 体积纹理;
	typedef _立方体贴图<显卡设备Ex> 立方体贴图;
	typedef _顶点缓冲区<显卡设备Ex> 顶点缓冲区;
	typedef _索引缓冲区<显卡设备Ex> 索引缓冲区;
	typedef _状态查询器<显卡设备Ex> 状态查询器;
#endif /* 使用DX预设 */
#endif /* 使用DXEx预设 */

#endif /* _DIRECTXZHONGWEN_H_ABCDE_ */